package com.moon.interface_api.utils;

import java.util.Random;

/**
 * 
* @ClassName: RandomCode
* @Description: 生成随机数
* @author fenglu
* @date 2017年12月7日 下午2:37:55
*
 */
public class RandomCode {   
	
	//生成多位不重复数字
	public static String getNo(int length) 
	{ 
		Random r = new Random(); 
		String str = ""; 
		for (int i = 0; i < length; i++) { // 循环次
			Integer x = r.nextInt(10); // 0-9的随机数 
			str += x.toString(); // 拼成length位数 因为int类型只能存放200000000+的数据，所以只能用字符串拼接 } 
		}
		return str; 
	}
	
	
	//生成多位不重复数字
	public static String getDetailNo(int length) 
		{ 
			Random r = new Random(); 
			String str = ""; 
			for (int i = 0; i < length; i++) { // 循环次
				Integer x = r.nextInt(5); // 0-9的随机数 
				str += x.toString(); // 拼成length位数 因为int类型只能存放200000000+的数据，所以只能用字符串拼接 } 
			}
			return str; 
		}

	//生成6位随机数字
	public static String getRandNum(){
		return String.valueOf((int)((Math.random()*9+1)*100000));
	}

	
	//生成随机数字和字母
    public static String getStringRandom(int length) {  
          
        String val = "";  
        Random random = new Random();  
          
        //参数length，表示生成几位随机数  
        for(int i = 0; i < length; i++) {  
              
            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";  
            //输出字母还是数字  
            if( "char".equalsIgnoreCase(charOrNum) ) {  
                //输出是大写字母还是小写字母  
                int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;  
                val += (char)(random.nextInt(26) + temp);  
            } else if( "num".equalsIgnoreCase(charOrNum) ) {  
                val += String.valueOf(random.nextInt(10));  
            }  
        }  
        return val;  
    }


	/**
	 *@Author:chengliang
	 *@date 2018/11/28_11:54
	 *@param
	 *@return
	 * 获取[start,end]随机数
	 */
	public static int getNum(int start,int end) {
		return (int)(Math.random()*(end-start+1)+start);
	}

	/**
	 *@Author:chengliang
	 *@date 2018/11/28_11:54
	 *@param
	 *@return
	 * 获取[start,end]随机数
	 */
	public static long getNum(long start,long end) {
		return (long)(Math.random()*(end-start+1L)+start);
	}
}   

